package com.admin.web;

import java.util.ArrayList;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.admin.service.AdminSchoolService;
import com.common.model.AdminUser;
import com.common.model.BaseUser;
import com.common.model.College;
import com.common.model.Department;
import com.common.model.ProfBranch;
import com.common.model.Profession;

@Controller
@RequestMapping("/admin/college")
public class AdminCollegeWeb {
	@Autowired
	AdminSchoolService service;
	/**
	 * 查询所有学院
	 * @return
	 */
	@RequestMapping("/showCollegeList")
	public ModelAndView showCollege(){
		ModelAndView mav=new ModelAndView();
		mav.setViewName("admin/school/showCollege");
		mav.addObject("colleges", service.getAllCollege());
		mav.addObject("currentMenu", "showCollegeList");
		return mav;
	}
	@ResponseBody
	@RequestMapping("/getCollege/{clg_id}")
	public College getCollegeByClgId(@PathVariable("clg_id")int clgId) {
		return service.getCollegeByClgId(clgId);
	}
	/**
	 * 修改一个学院 
	 * @param clg
	 * @return -1 无权操作 -2 参数错误 -3 已存在重复的no -4 参数错误2
	 */
	@ResponseBody
	@RequestMapping("/updateCollege")
	public int updateCollege(College clg,HttpSession session){
		if(clg.getId()==null||clg.getName()==null||clg.getName().trim().isEmpty()||clg.getNo()==null||clg.getNo().trim().isEmpty()){
			return -2;
		}
		AdminUser admin=(AdminUser) session.getAttribute("user");
		//检查正在操作的用户是否为超级管理员
		if(!admin.isSuperAdmin()){
			return -1;
		}
		College clgCheck=service.getCollegeByClgNo(clg.getNo());
		if(clgCheck!=null&&clgCheck.getId()!=clg.getId()){
			return -3;//重复no;
		}
		clg.setName(clg.getName().trim());
		clg.setNo(clg.getNo().trim());
		try {
			service.updateCollege(clg);
		} catch (Exception e) {
			return -4;//参数错误2
		}
		return 0;
	}
	/**
	 * 删除一个学院
	 * @param clgId
	 * @return -1无权限 -2 学院下还有系 -3 学院下还有普通管理员 -4 仅仅只剩下一个学院了,不能删除
	 */
	@ResponseBody
	@RequestMapping("/deleteCollege/{clg_id}")
	public int deleteCollege(@PathVariable("clg_id")int clgId,HttpSession session){
		AdminUser admin=(AdminUser) session.getAttribute("user");
		//检查正在操作的用户是否为超级管理员
		if(!admin.isSuperAdmin()){
			return -1;
		}
		int result=service.deleteCollege(clgId);
		if(result==0){
			return 0;
		}
		return result-1;
	}
	/**
	 * 增加一个学院
	 * @param clg
	 * @return -1 无权操作 -2 参数错误 -3 重复no -4 参数错误2
	 */
	@ResponseBody
	@RequestMapping("/insertCollege")
	public int insertCollege(College clg,HttpSession session){
		if(clg.getName()==null||clg.getName().trim().isEmpty()||clg.getNo()==null||clg.getNo().trim().isEmpty()){
			return -2;//参数错误
		}
		AdminUser admin=(AdminUser) session.getAttribute("user");
		//检查正在操作的用户是否为超级管理员
		if(!admin.isSuperAdmin()){
			return -1;
		}
		clg.setName(clg.getName().trim());
		clg.setNo(clg.getNo().trim());
		int result=service.insertCollege(clg);
		if(result==-1){
			return -3;
		}
		if(result==-2){
			return -4;
		}
		return 0;
	}
}
